<?php namespace Home\Controller;
use Hdphp\Controller\Controller;
//购物车控制器
class ShoppingcarController extends Controller{
	public function index(){
		//清楚session
//		$_SESSION=array();
//		p($_SESSION);
		//实例化商品属性表
		$goodsAttrModel=new \Common\Model\Goodsattr;
		//检测session里面是否存在商品
		$session=isset($_SESSION)? $_SESSION['cart']:'';
//		循环查找商品属性
		foreach ($session['goods'] as $k => $v) {
			//判断商品gid检测session里面的id是否存在
			$gid=isset($v['id'])? $v['id']: '';
			//循环找商品的属性值
			if(isset($v['options'])){
				foreach ($v['options'] as $kk => $vv) {
				//获得尺码
				$session['goods'][$k]['options'][$kk]=$goodsAttrModel->where("gaid",$vv)->pluck('gtvalue');
				}
			}
				
		}
		
//		p($session['goods'][$k]['options'][$kk]);
		//实例化商品表
		$goodsModel=new \Common\Model\Goods;
		//判断商品是否存在
		if(isset($gid)){
			//查询当前商品的所有数据
			$pic=$goodsModel->where("gid={$gid}")->find();
			View::with('pic',$pic);
		}
		//分配session购物车里面的所有数据
		View::with('session',$session);
	    View::make();
	}
	//购物车数据处理
	public function ajaxCar(){
	    //如果是异步请求
	    if(IS_AJAX){
	    	//获取所有post数据
			$axdata = Q('post.');
//			p($axdata);
			$gaid = $axdata['gaid'];
//	    	//商品和货品列表关联
			$gid = Q('post.gid');

			$gsModel = new \Common\Model\Goods;

			$gldata = $gsModel->join('goods_attr','gid','=','goods_gid')->where("gid='{$gid}'")->get();
			
			// p($gldata);
			$str = array();
			foreach ($gldata as $k => $v) {
				foreach ($gaid as $key => $value) {
					if($v['gaid']==$value){
						$str[] = $v;
					}
				}
			}
//			 p($str);
			//附加价格相加
			//声明静态变量
			static $added;
			foreach ($str as $k => $val) {
				$added += $val['added'];
			}
			//计算价格
			$jiage = $str[0]['shopprice'];
//			 p($jiage);
			$jiage += $added;
			//获得商品gid
			$gid = $axdata['gid'];
			//获得商品名称
			$name = $axdata['name'];
			//获得商品数量
			$shuliang = $axdata['num'];
			$data = array(
			    'id'        => $gid, // 商品 ID 
		        'name'      =>$name,// 商品名称 
			    'num'       => $shuliang, // 商品数量 
			    'price'     =>$jiage, // 商品价格 
			    'options'   =>$gaid// 其他参数如价格、颜色、可以为数组或字符串 
				// 'color'     => 'red', 
				    // 'size'  => 'L' 
			);
//			 p($data);
			Cart::add($data);
//			 p($_SESSION);
			//新增
			//将数据返回给jquery
			$jsonData=array(
				'total'=>cart::getTotalNums(),
				'price'=>cart::getTotalPrice()
			);
//			p($jsonData);
			echo json_encode($jsonData);
			
	    }
	}
	public function jiajianAjax(){
	    if(IS_AJAX){
	    	$jieguo=$_POST;
//			p($jieguo);
			//更新购物车
			$data=array(
				'sid'=>$jieguo['goodid'],
				'num'=>$jieguo['numm']
			);
//			p($data);
			Cart::update($data);
			//获得所有数据
			$data =Cart::getAllData();
//			p($data);
			echo json_encode($data);
			exit;
			
			
	    }
	}
	//删除方法
	public function del(){
	    $id=Q('get.id');
//		p($id);exit;
		unset($_SESSION['cart']['goods'][$id]);
		View::success('删除成功',U('index'));
	}
	//退出
	public function out(){
		session_unset();
		session_destroy();
		go(U('Index/index'));
	}
}
 ?>